<?php
/**
 * Created by PhpStorm.
 * User: 悟能科技
 * Date: 2018/12/25
 * Time: 8:36
 */

namespace app\common\command;
use app\common\model\CardBirthdayCare;
use app\common\model\CardTimingPutUser;
use app\common\model\CardUserGet;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\Queue;

class Shengri extends Command
{
    protected function configure()
    {
        $this->setName('shengri')->setDescription('Here is the remark ');
    }

    protected function execute(Input $input, Output $output)
    {
        $this->shengri();

        $output->writeln("生日关怀会员处理成功:");
    }

    public function shengri()
    {
        $CardBirthdayCare = new CardBirthdayCare();
        $map['statu'] = 1;

        $carelist = $CardBirthdayCare->where($map)->select();
        $carelists = [];
        foreach ($carelist as $k=>$v){
            if ($v['time_type'] == 'lasting'){
                $carelists[] = $v;
            }
            if ($v['time_type'] == 'range' && $v['end_time'] > time()){
                $carelists[] = $v;
            }
        }

        if ($carelists !== []) {
            //END
            $CardUserGet = new CardUserGet();
            $CardTimingPutUser = new CardTimingPutUser();
            foreach ($carelists as $k => $v) {
                $riqi = date('m-d', strtotime(date('Y-m-d', time())) + $v['advance_day'] * 86400);       //时间
                $maps['birthday'] = ['neq', ''];
                $maps['top_mid'] = $v['top_mid'];
                $maps['fire'] = 1;
                $maps['have'] = 1;
                $maps['card_type'] = 'MEMBER_CARD';
                $userlist = $CardUserGet->where($maps)->field('c_id,mid,id,code,openid,card_id,birthday,nickname')->select();
                $list = [];

                foreach ($userlist as $ks => $vs) {
                    $birthday = date("m-d", strtotime($vs['birthday']));
                    if ($riqi == $birthday) {
                        $list[$ks]['mid'] = $vs['mid'];
                        $list[$ks]['code'] = $vs['code'];
                        $list[$ks]['openid'] = $vs['openid'];
                        $list[$ks]['name'] = $vs['nickname'];
                        $list[$ks]['card_id'] = $vs['card_id'];
                        $list[$ks]['birthday'] = $vs['birthday'];
                        $list[$ks]['c_id'] = $vs['c_id'];
                        $list[$ks]['us_c_id'] = $vs['id'];
                        $list[$ks]['is_bonus'] = $v['is_bonus'];
                        $list[$ks]['is_cards'] = $v['is_cards'];
                        $list[$ks]['put_type'] = $v['put_type'];
                        $list[$ks]['notice_time'] = $v['notice_time'];
                        $list[$ks]['top_mid'] = $v['top_mid'];
                        $list[$ks]['wx_open_id'] = $v['wx_open_id'];
                        $list[$ks]['remark'] = $v['remark'];
                        $list[$ks]['bonus'] = $v['bonus'];
                        $list[$ks]['zs_card_id_all'] = $v['zs_card_id_all'];
                        $list[$ks]['zs_card_info'] = $v['zs_card_info'];
                        $list[$ks]['statu'] = 'N';
                        $list[$ks]['send_type'] = 'BIRTHDAY_CARE';
                        $list[$ks]['user_info'] = json_encode($vs);
                        $list[$ks]['create_time'] = time();
                    }
                }

                if ($list !== []) {
                    $CardTimingPutUser->allowField(true)->saveAll($list);

                }
            }
        }
    }






//    //发券
//    private function task_biz_putcards($data = ''){
//
//        // 1.当前任务将由哪个类来负责处理。
//        //   当轮到该任务时，系统将生成一个该类的实例，并调用其 fire 方法
//        $jobHandlerClassName  = 'app\merchant\job\Fenzhang';
//        // 2.当前任务归属的队列名称，如果为新队列，会自动创建
//        $jobQueueName  	  = "task_biz_shengricare";
//        // 3.当前任务所需的业务数据 . 不能为 resource 类型，其他类型最终将转化为json形式的字符串
//        //   ( jobData 为对象时，需要在先在此处手动序列化，否则只存储其public属性的键值对)
//        $jobData = $data ;
//        // 4.将该任务推送到消息队列，等待对应的消费者去执行
//        $isPushed = Queue::push( $jobHandlerClassName , $jobData , $jobQueueName );
//        // database 驱动时，返回值为 1|false  ;   redis 驱动时，返回值为 随机字符串|false
//        if( $isPushed !== false ){
//            return 'success';
//        }else{
//            return 'error';
//        }
//    }
//
//    //送积分
//    private function task_biz_putbonus($data = ''){
//
//        // 1.当前任务将由哪个类来负责处理。
//        //   当轮到该任务时，系统将生成一个该类的实例，并调用其 fire 方法
//        $jobHandlerClassName  = 'app\merchant\job\Fenzhang';
//        // 2.当前任务归属的队列名称，如果为新队列，会自动创建
//        $jobQueueName  	  = "task_biz_shengricare";
//        // 3.当前任务所需的业务数据 . 不能为 resource 类型，其他类型最终将转化为json形式的字符串
//        //   ( jobData 为对象时，需要在先在此处手动序列化，否则只存储其public属性的键值对)
//        $jobData = $data ;
//        // 4.将该任务推送到消息队列，等待对应的消费者去执行
//        $isPushed = Queue::push( $jobHandlerClassName , $jobData , $jobQueueName );
//        // database 驱动时，返回值为 1|false  ;   redis 驱动时，返回值为 随机字符串|false
//        if( $isPushed !== false ){
//            return 'success';
//        }else{
//            return 'error';
//        }
//    }
}